package com.gadgets.framework.fm03.service;

import com.gadgets.framework.common.dto.Pagination;
import com.gadgets.framework.common.exception.GadgetsException;
import com.gadgets.framework.common.exception.GadgetsServiceException;
import com.gadgets.framework.fm03.dto.BusiFlowOperationDTO;
import com.gadgets.framework.fm03.dto.BusiFlowQueryDTO;
import com.gadgets.framework.fm03.pojo.BusiFlowInfo;

import java.util.List;

/**
 * @author UncleXiu
 * @version V1.0.1
 * @data 2021-01-28
 *
 */
public interface IBusiFlowManagerService {

    /**
     * 新增流程信息
     * @param flowInfo                  流程信息
     * @throws GadgetsServiceException  异常信息
     */
    public void addBusiFlowInfo(BusiFlowInfo flowInfo) throws GadgetsServiceException;

    /**
     * 分页查询业务流程信息
     * @param queryDTO              查询条件
     * @param pagination            分页条件
     * @return                      查询结果
     * @throws GadgetsException     异常信息
     */
    public List<BusiFlowInfo> queryBusiFlowByCondition(BusiFlowQueryDTO queryDTO, Pagination pagination) throws GadgetsException;

    /**
     * 更新业务流程状态
     * @param operationDTO              变更方法
     * @throws GadgetsServiceException  异常信息
     */
    public void updateBusiFlowStatus(BusiFlowOperationDTO operationDTO) throws GadgetsServiceException;

}
